/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package state.implementacoes;

import model.Jogador;
import model.ListaJogadores;
import servidorRMI.AddObservadorImp;
import state.interfaces.State;
import strategy.ListaCampos;
import strategy.modelos.Campo;

/**
 *
 * @author Lucas
 */
public class Comprando implements State {

    private Jogador jogador;

    public Comprando(Jogador jogador) {
        this.jogador = jogador;
    }

    @Override
    public void comprar() {
        Campo c = ListaCampos.getInstancia().buscaCampo(jogador.getLocal());
        jogador.setMoney(jogador.getMoney() - c.getValor());
        jogador.adicionarCampo(c);
        AddObservadorImp.getInstancia().notificarMensagem(jogador.getName(),
                "COMPRA: Você acaba de comprar "
                + c.getDescricao()
                + "!");

        if (jogador.isMinhaVez()) {
            jogador.jogando();
            jogador.setMinhaVez(false);
        } else {
            jogador.aguardando();
            ListaJogadores.getInstancia().nextJogador();
        }
        AddObservadorImp.getInstancia().notificaProximo();
    }

    @Override
    public void vender() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void lancarDados(int dadoUm, int dadoDois) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public String cadastrar() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void confirmar() {
        throw new UnsupportedOperationException("Not supported yet.");
    }
}
